package com.admin.service;

import com.admin.entity.Admin;
import com.admin.entity.Station;
import com.admin.entity.StationRecharge;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bean.ResponseBean;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author marisheng
 * @since 2019-11-21
 */
public interface IAdminService extends IService<Admin> {
    int editMoney(StationRecharge sr);

    Admin login(String username, String password);
    List selctyuanpassword(String adminName);

    int xiuPassword( String password ,String adminName);

    ResponseBean tologin(HttpServletRequest request, HttpServletResponse response, String username, String password);

    /**
     * 新增子用户
     *
     * @param admin
     * @return
     */
    int adduser(Admin admin);

    /**
     * 上级用户树的查询
     *
     * @param admin_id 点击用户的id
     * @return
     */
    List<Admin> selshangjiuser(int admin_id);

    /**
     * 查看是否是管理员 parent 0
     */
    public Admin queryAdminParent(int admin_id);

    /**
     * 分页查询子用户
     *
     * @param page
     * @param limit
     * @param m
     * @return
     */
    IPage searchyhgl(int page, int limit, Map m);


    /**
     * 修改admin其他信息
     *
     * @param admin
     * @return
     */
    int updatebyadmin(Admin admin);

    /**
     * 返回当前用户的沃币数
     *
     * @param username
     * @return
     */
    int getMoney(String username);

    /**
     * 删除站点时修改用户的沃币数
     *
     * @param station
     * @return
     */
    public int updateAdminCoin(Station station);

    /**
     * 得到界面上传过来的终端数改变总的沃币数
     *
     * @param s
     * @return
     */
    public int updataAdminmoney(Station s);

    /**
     * 根据id查询admin信息
     *
     * @param id
     * @return
     */
    public Admin SelectAdminByid(int id);

    /**
     * 检查昵称是否已存在
     *
     * @param adminName
     * @return
     */
    boolean seladminName(String adminName);

    List updateselct(Map m);

    /**
     * 如果登录过，记录一下登录的时间
     * @param nowString
     * @param adminId
     * @return
     */
    int updataNowString(String nowString , int adminId);


    /**
     * 查昵称和头像
     * @return
     */
    Admin chaUser(int admin_id);

    /**
     * 获取时间
     * @return
     */
    public String NowString();


    /**
     * 进行编辑删除等操作时判断该用户是否有权限
     *     updateid:表示修改的那条数据的用户id， adminid表示登录的当前用户
     * @param updateid
     * @param adminid
     * @return
     */
    public int selectQuanxian(int updateid,String adminid);

    /**
     * 根据站点ID 查询 所属用户
     * @return
     */
    public Integer selectAdminId(Integer station_id);

    List<String> getPermissionByUsername(String username);
    Admin getAdminByUserName(String username);
}
